dtln_weights.npz — DTLN noise-suppression model weights
=======================================================

Derived from the pretrained DTLN model published by breizhn/DTLN:

    https://github.com/breizhn/DTLN
    pretrained_model/model.h5   (Keras 2.2.4-tf HDF5, 986,753 parameters)
    sha256 b6e9ecb8140f51e8ffb373884b62e186dc166e97995fa7eea3fffcc6ef30d55d

Paper: Nils L. Westhausen and Bernd T. Meyer, "Dual-Signal Transformation LSTM
Network for Real-Time Noise Suppression", INTERSPEECH 2020.
https://arxiv.org/abs/2005.07551

The `model.h5` variant is the one from the paper (no log-magnitude input
normalization); it is also the variant every other published port uses, and the
one the ONNX/TFLite exports in that repository are generated from.

WHAT WAS CHANGED
----------------
Only the container. No value is altered, rescaled, quantized or retrained.
`model.h5` is repacked into an uncompressed npz of 22 flat little-endian f32
arrays, the format `crate::media::npz` reads (see `dtln/weights.rs` for the
entry table and `dtln/processor.rs` for the layers they build):

  - Keras LSTM `kernel` (in, 4*units) / `recurrent_kernel` (units, 4*units) and
    the single (4*units,) bias are copied verbatim. Keras and this crate's
    `LstmLayer` use the SAME gate order (i, f, c, o) and the SAME row-major
    [input, 4*hidden] layout, so there is no transpose and no permutation.
  - Keras `Dense` kernels (in, out) are copied verbatim — `Dense` here is also
    [input, output] row-major and computes `x @ W + b`.
  - The two pointwise `Conv1D(kernel_size=1, use_bias=False)` encoder/decoder
    kernels lose their leading length-1 axis, (1, in, out) -> (in, out), which
    makes them the same [input, output] matrices `Dense` consumes. Their biases
    do not exist upstream and are stored as zeros, which is arithmetically
    identical to `use_bias=False`; that accounts for the whole difference
    between upstream's 986,753 parameters and this archive's 987,521.

LICENSE (applies to the weights in dtln_weights.npz)
----------------------------------------------------

MIT License

Copyright (c) 2020 Nils L. Westhausen

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
